//用户路由模块
const express = require('express')

//创建路由对象
const router = express.Router();
//导入数据库
const db = require('../db/index')
    //导入加密密码包
const bcrypt = require('bcryptjs')
    //导入定义验证规则的包
const joi = require('joi')
    //导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
    //用户名的验证规则
const username = joi.string().alphanum().min(3).max(10).required()
    //密码验证规则
const password = joi.string().pattern(/^[\S]{6,12}$/).required()
    //登录表单的验证对象
const login_schema = {
        body: {
            username,
            password,
        }
    }
    //登录接口
router.post('/login', expressJoi(login_schema), (req, res) => {
        // console.log(bcrypt.hashSync("123456", 10));
        // console.log(req.body);
        //接收表单数据
        const userinfo = req.body;
        //1.检测表单数据是否合法
        // if (userinfo.username == '' && userinfo.password == '')
        //     return res.ResData('用户名和密码不能为空');
        //2.根据用户名查询用户数据

        //定义sql语句
        const sql = 'select * from sp_manager where mg_name=?'
            //执行sql语句,查询用户信息
        db.query(sql, userinfo.username, (err, result) => {
            //执行sql语句失败
            if (err)
                return res.ResData(err.message);
            //执行成功，但是查询到的数据不等于1
            if (result.length !== 1)
                return res.ResData('用户名错误')
                    //3.判断用户输入密码是否正确
                    //输入密码的数据库里的密码进行比较
            const compareResult = bcrypt.compareSync(userinfo.password, result[0].mg_pwd);
            if (!compareResult) return res.ResData("密码错误");
            // res.ResData("登录成功")
            const data = {
                "data": {
                    "id": result[0].mg_id,
                    "rid": result[0].role_id,
                    "username": result[0].mg_name,
                    "mobile": result[0].mg_mobile,
                    "email": result[0].mg_email
                },
                "meta": {
                    "msg": "登录成功",
                    "status": 200
                }
            }
            res.ResData("登录成功", 200, data);
        })

        //4.生成token字符串

        // res.ResData('登录')

    })
    //将路由对象共享出去
module.exports = router